package com.example.demo.service;

import com.example.demo.util.Commodity;

@org.springframework.stereotype.Service
public class CommodityService {

    public Commodity getCommodityById(int id) {
        //先尝试从redis中获取商品缓存

        //若有缓存，直接返回即可

        //若无返回，从数据库中查询商品，先放进缓存，再返回即可
        
    }

    public void addCommodity(Commodity commodity) {
        //同时放进缓存和数据库

    }

    public void deleteCommodity(Integer id) {
        //做法1(easy version):直接删除缓存和数据库即可

        //做法2(right version):为了保证多线程情况下，redis和数据库的双写一致性
        //先删一次redis，再删除数据库，间隔一小段时间后再尝试删一次redis。（延迟双删，实际应用中保证双写一致性常用的方法）
    }

    public void updateCommodity(Commodity commodity) {
        //同上，延迟双删
    }

    public void getList() {
        //尝试获取所有商品信息
    }
}
